A computer system typically is connected to various peripheral devices, which include disk drives, tape drives, printers, modems, etc. The computer system has an operating system that provides an interface between an application program and these devices. The operating system receives from the application a request to access one of the devices and translates this request into a request that will be understandable by that device. The operating system sends the translated request to the device and typically informs the application program when the requested access is complete.
In particular, the operating system is responsible for managing the processing and transfer of information between various system resources. One well known technique for managing these resources is the use of device drivers. Device drivers are software modules including processing logic for controlling the low level or device specific components of a particular computer system resource. For example, a device driver may be used for controlling a magnetic disk drive coupled to the computer system. In this example, the device driver would control the various hardware specific registers, latches, signals, or other components of the magnetic disk drive device. Similarly, other computer system resources such as serial or parallel input/output (I/O) ports, modem devices, computer network interface devices, memory expansion boards, etc. are controlled by device drivers. The device drivers are typically loaded into random access memory (RAM) during bootstrap initialization of the computer system.
For instance, an application program may request the operating system to read a file stored on a disk drive. The operating system would invoke a device driver provided for the disk drive and send the device driver this read request. The disk device driver would translate the read request by determining the actual disk location at which the blocks of the file are stored, and would send the read request to the disk drive. The disk drive would then service the read request by reading the disk at the determined actual disk location, and then inform the device driver upon completion. The device driver would then inform the application program that the request has been serviced.
A conventional method used for initially loading device driver software for controlling a peripheral device is to retrieve the driver software from a floppy disk or CD-ROM. Accordingly, peripheral devices are typically shipped from the manufacturer along with a floppy disk or CD-ROM containing the driver software for that device. Alternatively, the appropriate driver software may be provided as a part of the operating system as shown above with respect to the disk drive driver. In this case, the user must properly identify the device added to the computer system in order for the appropriate driver to be loaded.
Corporate computer users often have a plurality of different types of computers, each running a different operating system and using a variety of peripheral devices. As a result, the corporate computer user may need to maintain a library of device driver disks or CD-ROMS associated with a variety of peripheral devices. In the case where the appropriate device driver is selected from the operating system, the user must correctly identify the peripheral device. If the incorrect device driver is selected the peripheral device may malfunction.
Keeping separate floppy diskettes for each type of driver needed on a system oftentimes quickly proves to be an unmanageable task. For instance, in a large company with hundreds of computers, managing all of the different I/O cards for the various computers and the associated drivers which keep changing as devices are relocated from one computer to another became a logistical nightmare.
Microsoft Corporation introduced Windows 95 to remedy the above problem. Windows 95 made available most of the drivers for devices available on the market on a single CD-ROM. However, an arguably unforseen problem with respect to providing the host computer with drivers via Windows 95 is that the device drivers provided with the software package increasingly become outdated as time passes. Thus, as new devices (e.g., 56 K modems) are bought by a user of the system, the driver for which may not be on the Windows 95 CD-ROM which was installed years ago. As a result, the user is back to the same situation when Windows 95 was not available. That is, the user is forced to have to separately obtain the driver for the new device and install it to the host computer typically via downloading the driver from a floppy diskette.
Consequently, there is a strong need for a convenient and reliable method and system for obtaining an appropriate device driver for a peripheral device, which avoids the need for a user to have to manually download the device driver when incorporating the new device to a computing system.